package cn.com.surker.system.service;

import cn.com.surker.system.entity.SysOrigin;
import cn.com.surker.system.model.CacheUser;
import com.baomidou.mybatisplus.core.metadata.IPage;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @Author lucky
 * @create 2022年06月24 16:46
 * @desc
 */
public interface OriginService {

    /**
     * 查询用户关联的工厂
     * @return
     */
    List<SysOrigin> queryByUidOrigin(Long uid);

    /**
     * 查询已经管理数据源的公司信息
     * @return
     */
    List<SysOrigin> queryRelationDataOrigin();

    /**
     * 查询开通微信打卡的公司信息
     * @return
     */
    List<SysOrigin> queryGpsOrigin();

    /**
     * 根据
     * @param dsId
     * @return
     */
    SysOrigin queryByDsId(Long dsId);

    /**
     * 同步OA系统部门
     *
     * @return
     */
    Integer synOrigin();

    /**
     * 站点选择
     *
     * @param originId
     * @return
     */
    CacheUser choseStation(String token, Long originId, Long uid, Integer type, String ip);

    /**
     * 删除关联
     *
     * @param orgId 部门ID
     * @param mid   菜单ID
     * @return
     */
    Integer deleteRelationOrigin(Long orgId, Long mid);

    /**
     * 禁用部门
     *
     * @param id     部门ID
     * @param status 状态
     * @return
     */
    Integer updateStatus(Long id, Integer status);

    /**
     * 添加关联
     *
     * @param orgId 部门ID
     * @param mid   菜单ID
     * @return
     */
    Integer saveRelationOrigin(Long orgId, Long mid);


    /**
     * 根据条件查询所有的数据
     *
     * @param dto
     * @return
     */
    List<SysOrigin> findAll(SysOrigin dto);

    /**
     * 查询用户所属站点
     * @return
     */
    List<Map<String, Object>> findUserOrigin(Integer type, Integer status, Long uid);

    /**
     * 查询关联菜单
     *
     * @param orgId 部门ID
     * @return
     */
    List<Map<String, Object>> queryMenu(Long orgId);

    /**
     * 分页查询数据
     *
     * @param originName page
     * @return
     */
    IPage findByPage(String originName, Integer type, Integer offset, Integer limit);


    /**
     * 新增数据
     *
     * @param dto page
     * @return
     */
    Integer saveInit(SysOrigin dto);

    /**
     * 更新数据
     *
     * @param dto page
     * @return
     */
    Integer update(SysOrigin dto);

    /**
     * 删除部门
     *
     * @param id
     * @return
     */
    Integer delete(Long id);

	/**
	 * 根据id查询站点数据
	 *
	 * @param orgId
	 * @return
	 */
	SysOrigin queryByOrgId(Long orgId);
}
